package inter.face.interface1;

/**
 * @author shkstart
 * @date 2022/6/8 - 12:51
 */

public class USBTest {
    public static void main(String[] args) {
        Computer computer = new Computer();
        Flash flash = new Flash();
        computer.transferData(flash);
        //1.创建了接口的非匿名实现类的非匿名对象
        Printer printer = new Printer();
        computer.transferData(printer);

        //2. 创建了接口的非匿名实现类的匿名对象
        computer.transferData(new Printer());

        //3. 创建了接口的匿名实现类的非匿名对象
        USB phone = new USB(){

            @Override
            public void start() {
                System.out.println("手机开始工作");
            }

            @Override
            public void stop() {
                System.out.println("手机停止工作");
            }
        };
            computer.transferData(phone);
        //4. 创建了接口的匿名实现类的匿名对象
        computer.transferData(new USB(){
            @Override
            public void start() {
                System.out.println("手机开始工作");
            }

            @Override
            public void stop() {
                System.out.println("手机停止工作");
            }
        });

    }
}


interface USB{
    void start();

    void stop();
}

class Computer{
    public void transferData(USB usb){
        usb.start();

        System.out.println("具体传输数据的细节");

        usb.stop();
    }
}
class Flash implements USB{

    @Override
    public void start() {
        System.out.println("U盘开始工作");
    }

    @Override
    public void stop() {
        System.out.println("U盘停止工作");
    }
}

class Printer implements USB{

    @Override
    public void start() {
        System.out.println("打印机开启工作");
    }

    @Override
    public void stop() {
        System.out.println("打印机停止   工作");
    }
}